/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package LoginManager;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 *
 * @author Alex
 */
public class LoginServlet extends HttpServlet {

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here
            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet LoginServlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet LoginServlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");
             */
            
            HttpSession session = request.getSession();
            
            String username;
            String password;
            boolean checker;

            username = request.getParameter("username");
            password = request.getParameter("password");

            //Assuming we have a function that checks the user credentials
            checker = new LoginManager().LoginUser(username, password);
            
            if(checker == true){
                
                String resid  = new LoginManager().getInfo(username, "CustomerID");
                String firstname  = new LoginManager().getInfo(username, "firstname");
                String middlename  = new LoginManager().getInfo(username, "middlename");
                String lastname  = new LoginManager().getInfo(username, "lastname");
                String address  = new LoginManager().getInfo(username, "address");
                String city  = new LoginManager().getInfo(username, "city");
                String email  = new LoginManager().getInfo(username, "email");
                String postal = new LoginManager().getInfo(username, "postal");
                String creditname = new LoginManager().getInfo(username, "creditname");
                String creditnumber = new LoginManager().getInfo(username, "creditnumber");
                String date = new LoginManager().getInfo(username, "expdate");
                String credittype = new LoginManager().getInfo(username, "credittype");
                String usertype = new LoginManager().getInfo(username, "usertype");
              
                                        
                session.setAttribute("user",username);
                session.setAttribute("pass",password);        
                session.setAttribute("firstname",firstname);             
                session.setAttribute("middlename",middlename);             
                session.setAttribute("lastname",lastname);             
                session.setAttribute("address",address);
                session.setAttribute("city", city);
                session.setAttribute("email",email);
                session.setAttribute("postal", postal);
                session.setAttribute("creditname", creditname);
                session.setAttribute("creditnumber", creditnumber);
                session.setAttribute("expdate", date);
                session.setAttribute("credittype", credittype);
                session.setAttribute("id",resid);             
                session.setAttribute("usertype", usertype);
            
                if(checker == true && usertype.equals("1"))
                    response.sendRedirect("customer.jsp");
                else
                    response.sendRedirect("index.jsp");
                
                
                /*
                else if(usertype.equals("2"))
                    response.sendRedirect("login1234foobar.jsp");
                else if(usertype.equals("3"))
                    response.sendRedirect("login4567foobar.jsp");
                */
            }
           
                
                
        
        }
            finally {         
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
